package cn.stronglink.asset.terminal.bjc.mapper.inventory;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;

import cn.stronglink.asset.model.Inventory;
import cn.stronglink.asset.model.InventoryDetail;
import cn.stronglink.asset.model.InventorySheet;
import cn.stronglink.asset.model.InventorySheetDetail;
import cn.stronglink.asset.model.InventoryTime;
import cn.stronglink.asset.module.inventory.vo.InventoryVo;
import cn.stronglink.asset.terminal.bjc.model.InventorySheetDetailVo;
import cn.stronglink.asset.terminal.bjc.model.InventorySheetVo;

/**
 * @author sunlei:
 * @version 创建时间：2018年1月17日 下午8:50:28 类说明
 */
public interface InventoryBjcMapper {
	public List<InventoryVo> queryList(Pagination page, @Param("params") Map<String, Object> params);

	public void remove(@Param("id") Long id);

	public void updateInventory(Inventory inventory);

	public int insertInventory(Inventory inventory);

	public InventoryVo qryById(@Param("id") Long id);

	public List<InventorySheetDetail> getInventoryAssets(@Param("rackId") Long rackId);

	public void insertInventoryDetail(InventoryDetail detail);

	public void removeInventoryDetail(@Param("inventoryId") Long id);

	public List<Long> qryRackIdsById(@Param("id") Long id);

	public List<String> qryRacksName(@Param("inventoryId") Long id);

	public List<HashMap<String, Object>> qryInventoryCount(@Param("sheetId") Long id);

	public List<InventorySheetDetail> quryAssetByInventory(Page<InventorySheetDetail> page,
			@Param("params") Map<String, Object> params);

	public List<Inventory> queryAllList();

	public void insertInventorySheet(InventorySheet sheet);

	public void insertInventorySheetDetail(HashMap<String, Object> map);

	public InventorySheet getInventorySheet(@Param("inventoryId") Long id);

	public void deleteInventorySheet(@Param("sheetId") Long id);

	public void deleteInventorySheetDetail(@Param("sheetId") Long id);

	public void updateInventoryState(Inventory vo);

	public void updateInventoryNormal(HashMap<String, Object> normalMap);

	public void updateInventoryLoss(HashMap<String, Object> lossMap);

	public void updateInventoryDifferent(HashMap<String, Object> differentMap);

	public void updateInventoryOver(HashMap<String, Object> overMap);

	public List<InventorySheetVo> qryInventorySheetList();

	public List<InventorySheetDetailVo> qryInventorySheetDetail(@Param("sheetId") Long sheetId);

	public void updateInventorySheet(InventorySheet sheet);

	public void insertInventorySheetDetailOne(InventorySheetDetail detail);

	public void updateInventorySheetBatch(HashMap<String, Object> map);

	public void uploadInventorySheetDetail(InventorySheetDetail sheetDetail);

	public void uploadDetailBySheetId(HashMap<String, Object> detailmap);

	public InventorySheetDetail qryDetailById(@Param("detailId") String inventorySheetDetailId);

	public void updateInventoryStateBySheetId(@Param("sheetId") Long sheetId);

	public List<InventoryTime> getInventoryTimes(@Param("id") Long id);

	public void insertInventoryTime(HashMap<String, Object> map);

	public void deleteInventoryTime(@Param("inventoryId") Long id);

	public List<InventorySheet> qrySheetById(Page<InventorySheet> page, @Param("params") Map<String, Object> params);

	public InventorySheet qrySheetObjById(@Param("sheetId") Long id);

	public Inventory qryByTimeId(@Param("timeId") Long timeId);
}
